//! \file Error.h
//! \brief TODO: document
//!
//! TODO: document
// -----------------------------------------------------------------------------
//! This program is free software; you can redistribute it and/or
//! modify it under the terms of the GNU General Public License
//! as published by the Free Software Foundation; either version 2
//! of the License, or (at your option) any later version.
//!
//! This program is distributed in the hope that it will be useful,
//! but WITHOUT ANY WARRANTY; without even the implied warranty of
//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//! GNU General Public License for more details.
//!
//! You should have received a copy of the GNU General Public License
//! along with this program; if not, write to the Free Software Foundation,
//! Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// -----------------------------------------------------------------------------

// Project Includes
#include "Config.h"

// Standard Includes
#if OS_IS_LINUX == ENABLED
  #include <errno.h>
#endif

#ifndef dERROR_H_
  #define dERROR_H_

  // =====[ Error Types ]=======================================================

  //! \brief TODO: document
  //!
  //! TODO: document
  typedef int TERROR;

  // =====[ Error Codes ]=======================================================

  static const TERROR ERROR_NONE = 0;               /*!<  \brief No errors occurred processing the request.

                                                          The request executed as expected and no exceptions occurred.
                                                    */
  static const TERROR ERROR_UNKNOWN = -1;           /*!<  \brief A catch all error code.

                                                          This error occurs when an exception happens that does not
                                                          match any other error code.  The exception unknown, but
                                                          still allows for the caller to handle the exception.
                                                    */
  static const TERROR ERROR_INVALID_ARGUMENT = -2;  /*!<  \brief The provided argument does not contain valid values.

                                                          This error occurs when an argument is passed to a function
                                                          and the argument value contains values that would cause a
                                                          failure.  An example of this is a valid pointer is required
                                                          to perform a check, but NULL was passed instead.
                                                    */
  static const TERROR ERROR_INVALID_FILE = -3;      /*!<  \brief There was an error trying to access a file.

                                                          This error occurs when access to a file fails.  This could
                                                          cover a multitude of conditions for example, the file does
                                                          not exist or the the file access does not accommodate the
                                                          requested operation.
                                                    */

#endif // dERROR_H_
